﻿using GrapeCity.Forguncy.Plugin;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static QdrantConnector.SearchInCollection;

namespace QdrantConnector
{
    public class PayloadPropertyObject : ObjectPropertyBase
    {
        [FormulaProperty]
        [DisplayName("属性名")]
        public object Name { get; set; }
    }

    public class QueryConditionObject : ObjectPropertyBase
    {
        [FormulaProperty]
        [DisplayName("属性名")]
        public object Name { get; set; }

        [DisplayName("比较")]
        [ComboProperty]
        public Operation Op { get; set; } = Operation.文本匹配;

        [DisplayName("值")]
        [FormulaProperty(AcceptsReturn = true)]
        public object Value { get; set; }
    }

    public enum Operation
    {
        [Description("MatchText：文本中包含")]
        文本匹配,
        [Description("NotMatchText：文本中不包含")]
        文本不匹配,
        [Description("Match：整数、布尔值和文本（仅keyword）相同")]
        匹配,
        [Description("NotMatch：整数、布尔值和文本（仅keyword）不相同")]
        不匹配,
        [Description("In：整数、布尔值和文本（仅keyword）在数组里面")]
        在里面,
        [Description("NotIn：整数、布尔值和文本（仅keyword）不在数组里面")]
        不在里面,
        [Description("Range（Gt）：数值大于")]
        数值大于,
        [Description("Range（Lte）：数值不大于")]
        数值不大于,
        [Description("Range（Lt）：数值小于")]
        数值小于,
        [Description("Range（Gte）：数值不小于")]
        数值不小于,

    }
}
